בתחום שבו כל פיפס נבדק כמה פעמים ובקפידה יתרה, מערכת עוברת בדיקות קפדניות רבות לפני שהיא עוברת לרשותו של הלקוח, רק כדי לא לחזור אל המפתח עם שלל תיקונים שישאבו מהחברה זמן ומשאבים, נדרשים בודקי תוכנה להגדיל ראש, כי הם הסמכות העליונה במערכת כרגע, המילה האחרונה שנאמרת בטרם קורה התהליך החשוב מכולם - מסירת המערכת ללקוח. בעוד שלפני כמה שנים נדמה היה שתורגש האטה בדרישה לבודקי תוכנה, הרי שכיום נראה שהתחום הזה רק גדל, במיוחד עם התפתחות הכלים הטכנולוגיים העומדים לרשות בודק תוכנה מקצועי. אם בעבר מנהלי חברות רבים התלבטו אם להוסיף לתקציב את סעיף בדיקות התוכנה על ידי חברה חיצונית, ולבקש מהתוכניתן עצמו שיבדוק את התוכנה, טרם הוצאתה ללקוח, הרי שכיום ברור וידוע לכולם, בכל שלבי שרשרת ההחלטות, שמדובר בשני מקצועות שונים לגמרי, ובדיוק כמו שלא תבקש מהמעצב הגראפי שיעשה לך תספורת, כך לא תבקש ממפתח תוכנה שיריץ בדיקות תוכנה. בודק תוכנה מקצועי ומנוסה מיומן לאתר באגים בתוכנה, שהמפתח לא היה חושב עליהם כלל.
אבל... למה בעצם מפתח תוכנה לא יכול לחשוב על כל הבאגים האלה מראש? הרי יש לו ניסיון רב.
קודם כל מפני שאין לו זמן פנוי לשירטוטי תסריטים של "מה עלול להשתבש" תוך כדי עבודה נמרצת על התוכנה, וגם מפני שאין לו את הכלים לעשות זאת. כלים טכניים. זו הסיבה שכיום יותר ויותר חברות מעבירות את התוכנה לבודקי תוכנה שמריצים בדיקות תוכנה מקצועיות, ומאפשרים למתכנתים שלהם להמשיך לעבוד בנחת. לכן כיום דרושים בודקי תוכנה יותר מאי פעם, אבל הם חייבים להיות מיומנים, מקצועיים ובעלי חשיבה אחרת, מקורית ובעלת מעוף. כי אם הם לא יצליחו לאתר את הבאגים המסתתרים בתוכנה, הלקוח כבר ימצא אותם. וזה יהיה "אופס" אחד גדול.
אז מה בעצם מסתתר בתוכנה, איזה צרות, איומים ותקלות כבר יכולות להתחבא בתוך תוכנה שפיתח מהנדס מנוסה, שזו התוכנה המאתיים ותשע עשרה שלו???
הרבה תקלות אינן מתגלות גם אם המתכנת מעביר את התוכנה שלו אינספור בדיקות. מדוע? מפני שהמערכת פשוט לא סובלת משום באג. בינתיים. אבל אם המתכנת יגיע ללקוח שלו, ויתקין את המערכת בסביבת העבודה של הלקוח, שאותה הוא לא מכיר וכוללת גורמים חדשים שאותם הוא לא לקח בחשבון מראש - כי לא יכל היה לדעת עליהם אלא אם במקרה הוא עבד בדיוק באותה סביבת עבודה בדיוק אצל אותו לקוח - המערכת עלולה להתנהג כמלאת באגים. שזה אומר כל הדברים הכייפים הרגילים: להיתקע, לתקוע שרתים אחרים ועוד בילויים נעימים מהסוג הזה. אז איך מנחשים מראש מהי סביבת העבודה של הלקוח, ומה יש בה שעלול להפריע למערכת להתנהל על מי מנוחות?
השאלה השנייה היא, האם למתכנת יש זמן לכל הניחושים ומשחקי הספקולציות האלה בכלל?
התשובה היא לא. אין לו זמן לזה, בקושי הוא יעמוד בלוח הזמנים הנוקשה של המערכת, ובלי קשר זו גם לא עבודתו. לשם כך יש בדיקות תוכנה, שנערכות על ידי בודקי תוכנה מקצועיים שעובדים בחברת בדיקות חיצונית ומצויידים בכל הכלים - ידניים וגם אוטומטיים - שיעזרו להם למצוא בדיוק את הבאגים הנסתרים בתוכנה, המעצבנים האלה שגורמים למערכת להתנהג בצורה שונה דווקא מול הלקוח חסר הסבלנות. בדיקות תוכנה איכותיות משרטטות תסריטים ובהם כל מצב אפשרי של סביבת עבודה ושל התנהגות לקוח. אם באחד המצבים המדומיינים האלה מתגלה משהו שתוקע את המערכת, הם מיד מזהים אותו והמערכת נשלחת לתיקון מיידי.